Leggere e salvare BLOB C# using Oracle.DataAccess.Client; using Oracle.DataAccess.Types; public void Page_Load(Object sender, EventArgs e) { string strConn = "Data Source=Test;User Id=Test;Password=Test;"; string query = "SELECT fileName, file FROM provaBlob WHERE fileName='prova.xml'"; OracleConnection conn = null; OracleCommand cmd = null; try { using(conn = new OracleConnection(strConn)) { using(cmd = new OracleCommand(query, conn)) { OracleDataReader reader = cmd.ExecuteReader(); while(reader.Read()) { OracleBlob blob = reader.GetOracleBlob(1); string fileName = reader["fileName"] CreateFile(fileName, blob); } reader.Close(); } } } catch(Exception exe) { //Gestione eccezioni ... } } private void CreateFile(OracleBlob blob, string fileName) { FileStream fs = new FileStream(fileName, FileMode.CreateNew); byte[] buffer = new byte[blob.Length]; int bytesRead = 0; bytesRead = blob.Read(buffer, 0, buffer.Length); while (bytesRead > 0) { fs.Write(buffer, 0, bytesRead); bytesRead = blob.Read(buffer, 0, buffer.Length); } } VB.NET Imports Oracle.DataAccess.Client Imports Oracle.DataAccess.Types; Public Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load Dim strConn As String = "Data Source=Test;User Id=Test;Password=Test;" Dim conn As New OracleConnection(strConn) Dim query As String = "SELECT fileName, file FROM provaBlob WHERE fileName='prova.xml'" Dim cmd As New OracleCommand(query, conn) Try conn.Open(); Dim reader As OracleDataReader = cmd.ExecuteReader() While reader.Read() Dim blob As OracleBlob = reader.GetOracleBlob(1) Dim fileName As String = reader["fileName"] CreateFile(fileName, blob); End While reader.Close(); conn.Close(); Catch ex As Exception 'Gestione eccezioni ... Finally conn.Dispose() cmd.Dispose() End Try End Sub Private Sub CreateFile(ByVal blob As OracleBlob, ByVal fileName As String) Dim fs As New FileStream(fileName, FileMode.CreateNew); Dim buffer As Byte() = new byte(blob.Length); Dim bytesRead As Integer = 0 bytesRead = blob.Read(buffer, 0, buffer.Length) While bytesRead > 0 fs.Write(buffer, 0, bytesRead) bytesRead = blob.Read(buffer, 0, buffer.Length) End While End Sub